package initoy

import (
	"runtime"
)

var (
	CommentHeader = '#'
)

func init() {
	system := runtime.GOOS
	if system == "windows"{
		CommentHeader = ';'
	}
	if system == "linux" {
		CommentHeader = '#'
	}
}

// 根据传入的`@Listener`接口监听指定文件`@filename`发生的改动, 并返回加载改动后文件所得的结构体
func Watch(filename string,listener Listener) (*Configuration, error) {
	listener.listen(filename)
	conf, err := Load(filename)
	if err != nil {
		return nil, err
	}
	return conf, nil
}

// 加载`@filename`路径下的文件至 Configuration 结构体
func Load(filename string) (*Configuration, error){
	conf := NewConfiguration(filename)
	if err := conf.Reload(); err != nil {
		return nil, err
	}
	return conf, nil
}